Thermal sensors for stacked dies

ABSTRACT

The invention relates to a method for obtaining temperature values from at least two thermal sensors arranged on resources within a three-dimensional die structure determining at least a partial three-dimensional temperature distribution for said die structure and controlling activity of said resources of said dies in response to said three-dimensional temperature distribution.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a reissue application of U.S. Pat. No. 7,852,138,issued Dec. 14, 2010, which was based on U.S. patent application Ser.No. 12/306,450, having a date under 35 U.S.C. §371 of Mar. 6, 2009,which was a U.S. National-Stage Application under 35 U.S.C. §371 basedon PCT International Application No. PCT/IB2007/004090, filed on Dec.24, 2007, the contents of all of which are incorporated herein byreference.

TECHNICAL FIELD

The present invention is related to thermal sensing in integratedcircuits, and in particular to methods and devices for thermal controlin three-dimensional die structures.

BACKGROUND

Semiconductor dies are widely used for a large number of applications,such as microcontrollers, memory elements and other integrated circuits(ICs). Especially in portable devices, size has become an issue despitethe minimal dimensions of these dies. When a large number of memoryunits and other elements are required in a device, both the covered areaas well as the interconnection between several dies is a problem.Therefore, solutions are developed which include three-dimensional diearchitectures, i.e. a number of dies is stacked on top of each otherwithin a single chip package, also known as 3D ICs. This technology hassignificant advantages including increased packaging density, increasednumber of possible connections between the dies, and reduced energyconsumption due to lower interconnect capacitances.

Operation of any silicon die produces heat as a side effect. Since heatmay damage or even destroy a semiconductor die, many dies include athermal sensor which allows for determining the current temperature of adie. Depending on the temperature, die operation may be controlled in away that prevents damaging temperatures. In a simple implementation, useof the complete device is prevented if one of its parts is overheating.In other implementations, usage of an overheating part may be throttled,increasing response time of the element but otherwise continuingoperation of the device. An example is to speed up the refresh cycle ofDRAM (Dynamic Random Access Memory) memory elements, which is necessaryfor data retention at higher temperatures but also decreases throughputof the device.

There are several issues in both single die and stacked die environmentswhich are not considered in known solutions. One temperature sensor on adie may not be sufficient for an effective control. The temperature on adie may vary between different areas of the die. This may be due to amore extensive usage of certain areas, such as more frequently usedmemory banks and rows, but also due to constructional features. A singletemperature sensor on a die, as often used, may therefore not givesufficient information on the actual heat source. Even worse, a singlesensor which is located at some distance from the heated spot willdiscover overheating later than actually occurred, which means thatsafety margins have to be added to the temperature thresholds for thesensor.

Especially in a stacked or three-dimensional structure, where a die maybe sandwiched in between further dies, heat conduction of the substratematerials may lead to heating of adjacent dies. That is, not only theactual heat source will show a higher temperature, but also dies belowor above may give higher temperature readings. Since the reaction toincreased temperatures is usually a deactivation or throttling of dieusage as described above, this may lead to a decreased performance ofseveral dies or die areas which are not the real source of overheating.Another reason to determine the heat source as exact as possible is thatlarge temperature differences within a die stack should be avoided.Excessive temperature differences may warp the die stack and as aconsequence cause fatigue and potential material failures.

Nevertheless, the current approach for thermal sensors cannot simply beextended to multiple sensors, which may help to determine an exactlocation of a heat source. The logic required for multiple sensing on adie would be significant. A larger number of analog to digitalconverters (ADCs) and possibly other control logic would be necessary,which would lead to increased cost. Similarly, multiple sensors wouldlinearly increase the required number of connection pins.

SUMMARY

According to exemplary embodiments of the invention, a method isprovided which may in exemplary embodiments comprise obtainingtemperature values from at least two thermal sensors arranged onresources within a three-dimensional die structure; determining at leasta partial three-dimensional temperature distribution for said diestructure; and controlling activity of said resources of said dies inresponse to said three-dimensional temperature distribution.

In some embodiments, the determining may include comparing temperaturevalues of said at least two thermal sensors with each other; locating atleast one heat source based on said comparing; identifying at least oneresource associated with said at least one heat source; and thecontrolling of activity may include throttling activity at least in saidat least one identified resource.

According to an embodiment, the activity may be throttled if said atleast one temperature value associated with said at least one identifiedresources is above a predefined threshold.

The identifying may for example include identifying a resourceassociated with the highest of said compared temperature values.

Additionally, in some examples the method may comprise receiving asignal indicating a temperature value above a second predefinedthreshold. In some further embodiments, the method may further comprisesensing said temperature values in response to said received signal.

In exemplary embodiments, the method may include continuously sensingsaid temperature values.

Also, a method may in certain embodiments further comprise selecting aspecific sensor to be sensed. The selecting may in some embodimentsfurther comprise providing a control sequence signal for switchingelements connected to said sensor. In exemplary embodiments, theswitching elements may be multiplexers.

According to exemplary embodiments, a method may further compriseselecting a specific sensor for evaluation; wherein said obtainedtemperature values include a selected temperature value sensed by saidselected sensor; and wherein said comparing comprises comparing saidselected temperature value to at least a further one of said obtainedtemperature values; and issuing a throttle order for a resourceassociated with said selected sensor if said selected temperature valueis determined to be the highest value in said comparing.

In some embodiments, the method may comprise issuing a throttle requestfor a defined further resource if a temperature value associated withsaid further resource is higher than said selected temperature value. Itmay in these or other embodiments comprise checking whether a throttlerequest exists for a selected resource.

According to exemplary embodiments, the method may further comprisecomparing a selected temperature value associated with said selectedresource to a second temperature value associated with the resourcewhich has issued said throttle request; and issuing a throttle order forsaid selected resource if said selected temperature value is higher thansaid second temperature value.

The throttling may according to exemplary embodiments be triggered by abinary throttle order associated with a specific resource.

In some embodiments, the method may further comprise determining ameasure of confidence that at least a selected resource needs to bethrottled. Such a measure of confidence may for example be included in athrottle order and/or a throttle request.

In exemplary embodiments, said throttle request is a binary valueassociated with a requesting resource.

The comparing and/or said throttling may in specific embodiments bebased on information on relative sensor locations within said diestructure.

In some embodiments, the at least two temperature values are obtainedfrom adjacent sensors within said die structure, for example fromneighboring sensors on the same die or from sensors located above and/orbelow. However, also non-adjacent sensors may be measured and/orcompared.

According to a further aspect of the invention, a computer programproduct is provided which may in exemplary embodiments include computerprogram code which, when executed, causes a device to execute a methodaccording to any of the above described embodiments.

According to a further aspect of the invention, a device is providedcomprising at least two semiconductor dies packaged together in athree-dimensional die structure; at least one thermal sensor located oneach of said dies; a control unit connected to and controlling saidthermal sensors; wherein said control unit is adapted to obtaintemperature values sensed by said thermal sensors; determine at least apartial three-dimensional temperature distribution for said diestructure; and issue throttle orders for resources on said dies independence of said temperature distribution.

In exemplary embodiments, said control unit is further adapted to sensea selected thermal sensor.

According to exemplary embodiments, said control unit is adapted tocontinuously evaluate at least a part of said thermal sensors, saidevaluation including said determining of a temperature distribution andsaid issuing of throttle orders.

The device may in some embodiments further comprise a memory elementconfigured for storing said throttle orders, and/or a memory elementconfigured for storing said temperature values and/or said temperaturedistribution. The memory elements may in some embodiments also be thesame element.

In exemplary embodiments, the device may further comprise switchingelements coupled between said control unit and said thermal sensors,said switching elements being configured for selecting a specificthermal sensor. These switching elements may for example bemultiplexers. Switching elements may in exemplary embodiments bearranged such that only a single sensor at a time is connected to saidcontrol unit.

According to some embodiments, said device may further include a sensingunit. The sensing unit may in exemplary embodiments comprise ananalog-to-digital converter.

In exemplary embodiments of the device, said thermal sensor may be athermal diode.

In some embodiments, said sensing unit is coupled to a compensation unitconfigured for modifying values sensed by said sensing unit. Also, inthese or other embodiments, said sensing unit and/or said compensationunit may be coupled to a comparator configured for comparing valuessensed by said sensing unit.

According to exemplary embodiments wherein said control unit includes atleast one of said sensing unit, said compensation unit and saidcomparator. Said control unit may in some embodiments be implemented viasoftware code.

BRIEF DESCRIPTION OF FIGURES

FIG. 1 depicts a stacked die system with three dies;

FIG. 2 is an illustration of a prior art thermal sensing system on adie;

FIG. 3 shows the difference in heat generation on a single die and a 3Dsystem;

FIG. 4 schematically illustrates a possible embodiment for controllingand sensing individual sensors on three stacked dies;

FIG. 5 is a diagram of an exemplary embodiment of an inventivetemperature control system;

FIG. 6 shows a flow diagram for an exemplary embodiment of a temperaturecontrol method;

FIG. 7 is a diagram of another embodiment of an inventive temperaturecontrol system using concurrent processes;

FIG. 8 shows a flow diagram for another exemplary embodiment of atemperature control method;

FIG. 9 is one die in an embodiment of a sensor sequencing scheme forseveral sensors in a multi-die system;

FIG. 10 is an illustration of sensor selection based on the embodimentof FIG. 8;

FIG. 11 depicts another embodiment of a sensor sequencing scheme with adie-internal current source; and

FIGS. 12a-12cdepictsdepict three further embodiments of a sensorsequencing scheme with varying control elements on the die.; and

FIGS. 13 and 14 depict pseudocode reflecting examples of algorithms thatmay be used in some embodiments.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

FIG. 1 shows a cross section of a system 1 of stacked semiconductor diesforming a so-called die stack or 3D-IC in a single package. The threedies 2, 4, 6 are stacked vertically on top of each other and may beconnected by an adhesive, a connecting pad 12 or similar attachingmeans. All dies are arranged on a substrate 8 which is also used foroutside connections. Interconnections may be provided by wiredconnections 10 along the edges of each die 2, 4, 6 leading to thesubstrate 8. In other embodiments through vias within the dies mayprovide for connections from die to substrate or between dies. For heatdissipation, thermal vias may be provided as well. In some embodiments,dies may be connected in a flip-chip technique using conductive bumpsplaced between the connecting surfaces of two dies facing each other.Besides the stacked dies, further dies arranged horizontally may bepresent within a single package. Also, die sizes do not have to match,such that two smaller dies may e.g. be placed on a single larger one. Apackage 16 is provided around the bare dies for protection from externalinfluences, e.g. made from plastic or ceramic materials. Solder bumps 14on the bottom of the substrate are used in this example to provideconnection interfaces for integrating the complete chip 1 into acircuit. It shall be noted that many variants of stacked die systems areconceivable and known in the art, and that details of those or thefunctions of each die or element are not relevant for the presentinventive idea.

FIG. 2 is an illustration of a prior art thermal sensing system on a die20. Typically, thermal sensors 22 generate an electric signal which is afunction of the temperature of the sensor element, e.g. an outputvoltage or current may be proportional to the current temperature. Theelectric signal may be relayed and processed further as desired. Thesensor may be any temperature sensitive device, such as a p-n junctiondevice like a diode or a transistor, or a temperature sensitiveresistor. In the embodiments described, the sensors are thermal diodes22. However, it should be understood that diodes are only used by way ofexample and that other sensor types may be employed. The diode 22 iscoupled with both terminals to an analog-to-digital converter ADC 24which converts the analog diode signals into digital values. In thecomparator 26 connected after the ADC, it is examined whether thedetermined temperature value exceeds predefined threshold values. Thesuccessive interrupt logic 28 may, in dependence of the output of thecomparator 26, decide to generate an interrupt signal if necessary. Allthese elements are located on the die 20 itself.

FIG. 3 shows the difference in heat generation within two-dimensionaland three-dimensional systems. On the left in FIG. 3a, a single die withfour sensors 22 is shown. The sensors are arranged in a regular mannerin this example, but in other embodiments sensors might also be arrangedon different locations. The shaded areas 40 indicate a temperaturegradient which may be generated by a heat source in the middle of themarked area. It is assumed that the temperature is above a presetthreshold at the upper right sensor, and below the threshold at theremaining sensors. This allows to confine the location of the heatsource 40 to one quarter of the die area. FIG. 3b on the right shows asystem of three stacked dies 2, 4, and 6. The displacement is forillustrative purposes only, and in an actual system the dies may becontacting. In this example, the sensors 22 on each die are arranged asthose of the single die example, i.e. one sensor for each quarter diearea. The primary heat source 40 is assumed to be in the lowest die 6.Therefore, the respective sensor in the lowest die 6 will give atemperature reading above the threshold and may create an interruptsignal as described above via the interrupt 32. However, due to thedirect contact and good heat transport between the dies 2, 4, 6, areason the upper two dies 2 and 4 will also be heated to some extent. Whilethe heating may be less than on the die 6 which is the heat source, itmay still cause a temperature increase beyond a predefined temperaturethreshold, such that the sensors of the upper dies also indicateoverheating. Not only directly neighboring dies may show elevatedtemperature levels, but depending on the heat transport characteristicsof the materials used also dies which are located farther away in thestack may be affected.

Thus, it is necessary to determine a three-dimensional view of thetemperature readings on the stack in order to find the true heat sourceand react accordingly. Deactivation or throttling of functions of theupper dies would unnecessarily degrade performance of the integratedcircuit without lowering the temperature below the threshold. Only thedie or part of a die which is responsible for the overheating needs tobe throttled or controlled. With several sensors on each die and acombined control and evaluation for at least some of the temperaturesensors of different dies, it is possible to get a three-dimensionaltemperature map instead of only single die temperature information. Fromthis temperature map and the corresponding temperature gradients, it ispossible to derive an actual heat source within a three-dimensional diestructure. In the evaluation of the temperature data, other informationsuch as material characteristics, functional die areas and structuralfeatures may also enter the final assessment. The thermal sensorsemployed may be different for different dies, or even on a single die,as long as the common control element allows to interpret and combinetheir readings correctly.

FIG. 4 illustrates, by way of example, an inventive concept ofcontrolling and sensing individual thermal sensors 22 on three stackeddies 2, 4, and 6. In the figure, the dies are once more shown displacedfor the sake of clarity, but it will be understood that these dies maybe located directly on top of each other in an implementation. Each diecontains four thermal sensors 22 shown as small squares. In otherembodiments, more or less sensors may be used, and they might also bearranged in a different pattern than the one used here. A common controlunit 50 contains the analysis and control logic for the thermal sensors22 on all dies. While a single control unit or entity is shown here,further control entities may be utilized in case of extensive setupswith a large number of sensors to be controlled. The control cyclesthrough all the sensors, activating only one at a time. It can be seenthat the sensors of all dies are connected in series by a control line52 for this purpose. The connection sequence may be chosen such that theconnecting paths are minimized, or in another suitable way. In theexample of FIG. 4, all sensors of one single die are coupled in series,and from the last sensor on a die a connection to the first sensor ofanother die is made. The sensed values are returned to the controlentity 50 using a shared signaling resource 54.

FIG. 5 is a diagram of an exemplary embodiment of an inventivetemperature control system. The system may be structured into threelevels or parts. One part is the physical resources, such as theprocessors, memories, accelerators, or buses which may be formed by orwithin the semiconductor dies 2. Several resources 60, 62 may beprovided on a single die. These are the components producing heat andgenerally, a higher activity in those resources will lead to increasedheat generation of the corresponding die areas. For the same reason,throttling of the activity of a resource may help to decrease thetemperature. In the example shown, three different, arbitrary resourcesare shown on the die 2. It will be understood that, while only a singledie 2 is shown here, the setup for the further dies of a stackedconfiguration may be similar, for example like the one of FIG. 4.

The second part is the throttling process and the corresponding memorytransactions. Sensing of the thermal sensors is triggered by aninterrupt 32 that indicates a significant temperature change at one ormore sensors 22. The specific sensor may also be indicated. In response,a sensing process is initiated where the relevant sensors are read andthe temperature values are written to a memory. Subsequently, anevaluation process compares the determined temperature values againstpredefined threshold values. Based on this comparison, it is decidedwhether throttling or another cooling activity is required. The decisionon any cooling, throttling or restriction may also be stored in memory.Finally, a throttling process is started based on the decisions forthrottling stored in the memory. Here, it is determined which commandsshall be given and which resources need to be restricted.

The third part of the system is a memory 64 (or register) which maycontain the status information for the throttling process. Both thetemperature values read from various sensors and the necessary actionsfor throttling the relevant resources may be stored for furtherprocessing. The memory elements used may be different elements for eachapplication or the same element.

Implementation of such a temperature controlling system may be done indifferent ways. An algorithm may be used to evaluate the obtainedthree-dimensional temperature information and to decide on throttlingmeasures when necessary. An example of an algorithm is given in appendixA attached to this description FIG. 13. The exemplary algorithm is shownin a pseudocode, i.e., in an exemplary structural description whichshall not limit the actual algorithm when implemented in a device orsoftware code. It is merely intended to show key points of an exemplaryembodiment of an inventive method without any necessary relation toreal-world programming languages, software code structures or otherimplementation details. An exemplary method flow diagram is given inFIG. 6.

A throttling process in a stacked die system is entered through aninterrupt and sequentially invokes a sensing function, an evaluationfunction, and a throttling function. In the sensing process, thetemperature of the sensor that generated the interrupt is read. Thepresent example may include additional readings of sensors above andbelow that sensor. If the measured temperature of the triggering sensoris higher than that of the above and below sensors, a throttling of thecorresponding resource may be ordered.

In more detail, memory space may be reserved for each sensor plus oneadditional position. Also, threshold temperature values for each sensorand one additional value may be stored in a memory. A simpleimplementation is to use binary throttle orders, i.e. a resourceassociated with a specific sensor is either throttled or not, which maybe indicated by a binary variable for each sensor. The additional sensorelement defined in the values above may be used to provide an errorcode, e.g. for wrongly indicated sensors.

The pseudocode in appendix A FIG. 13 defines an exemplary evaluationloop which is invoked by an interrupt. Threshold values may be updatedoutside this evaluation loop, and these may e.g. be entered by a uservia a suitable application or preset in the system without anypossibility for changing the values. All sensors in the system may beassociated with an identifier, such as integers from 1 to n, n being thetotal number of sensors controlled by this system. There may be someinformation stored about the spatial arrangement of sensors, such thatfunctions above_sensor(x) and below_sensor(x) may be defined whichreturn the respective identifier above or below the sensor indicated byx.

The evaluation loop is then passed as shown in the pseudocode example Aof FIG. 13, or also in FIG. 6, showing a corresponding method flowdiagram for the exemplary embodiment. The interrupt indicates that acertain sensor exceeded a predefined temperature threshold in step 102.This may trigger the sensing and throttling functions according to theexample implementation. First, the temperature of the sensor in questionwhich is indicated by the interrupt signal is measured in step 104, or,if temperatures are sensed and stored outside this loop, read from amemory. In addition, temperature values of a sensor above and a sensorbelow this sensor are measured in the same step, as indicated by lines25 and 26 of the pseudocode. Evaluation of the measured values isimplemented in this example by a conditional procedure. In a first step106, it is checked whether the temperature T(s) of the selected sensoris above a predefined and stored threshold T_(max)(s) (indicated as“threshold[s]” in the pseudocode example). If this is the case, it isfurther compared in step 110 whether the relevant sensor s has thehighest temperature out of the three measured sensor values, or whetherone of the sensors above or below (i.e. on the adjacent dies within thestack) has a higher temperature reading than the middle one. In responseto this comparison, a throttle order is given for the resourcedetermined to have the highest temperature value in step 112. Thecorrect resource is indicated by an identifier corresponding in some wayto the sensors. A throttle order in a simple way may be defined by abinary value, i.e. it may be defined that a value of 1 for a certainsensor s is interpreted as a command to throttle the correspondingresource, while a value of 0 indicates that throttling of thecorresponding resource is not required. It will be understood that analgorithm for evaluating sensor readings may also be implemented in adifferent way while still using comparisons between three sensor valuesof sensors located above each other.

There may be additional prescriptions and definitions in the algorithm,e.g. for the case that more than one sensor exceeds its temperaturethreshold. Also, an embodiment may include not only comparing the actualtemperatures, but also taking into account that the allowable andexpected temperature range may vary for different die resources, e.g.due to different die materials. This may be implemented by adding orsubtracting a predefined temperature value in the comparison of measuredtemperatures, such that a sensor may be throttled although it does notshow the highest temperature in absolute numbers. In other examples, notonly the sensors below and above the “triggering” sensor may beconsidered, but also further layers farther below or above therespective die layer. It is conceivable to make further sensormeasurements dependent on a first result from a temperature evaluation,such as a case where a lower sensor shows the highest temperaturereading, which may trigger temperature sensing for the next lower dielevel.

The method as described above may be modified in numerous ways. As anexample, not only binary throttling orders may be used. In someembodiments, several threshold values may be defined for the evaluationand/or throttling functions, such that one of a number of throttlingprocedures is chosen dependent on the level of overheating. Amulti-level throttling system may be implemented by indicating theactual measured temperature in the throttling order, such that thethrottling function determines the action to take. In other embodiments,the classification of measured temperatures into levels of overheatingmay be performed at the evaluation stage, such that throttling orderswith e.g. integer values between 0 and 3 (or other values) are issuedbased on the sensed temperature or certain temperature differencesbetween sensors. Then, the throttling function provides the requiredthrottling action based on these values. As an example, a resource mayonly be throttled to a lower level of activity up to a certaintemperature reading, and a complete deactivation of the resource may beorder for very high temperature values.

Other embodiments may include considering other or further sensors.Since heat may also propagate within a die and not only between stackeddies, it is conceivable to incorporate sensor readings from thosesensors which are close to the triggering sensor on the same die. Thealgorithm might then be implemented similarly to the example above, i.e.by subsequent comparisons of the sensor reading which triggered theevaluation with those of neighboring sensors. In more complexembodiments, any number or combination of sensors may be considered inevaluation, and even the complete set of sensors within a die system maybe used for deciding on cooling measures based on the three-dimensionaltemperature map.

It may also be possible to define some absolute thresholds for sensorreadings which may lead to throttling of the resource independent of acomparison result. That is, even if a neighboring sensor shows highertemperature value, such an additional throttling threshold may orderthrottling of this resource as well, instead of only the resourceassociated with the highest temperature reading. This may help toprevent overheating in cases where the actual heat source is notunambiguously determinable, since a resource may show very hightemperatures when the respective die area is heated by activities ofboth this resource and a neighboring resource. These thresholds may besimilar or different from those defined for the initial interrupt.

Any of the previously described processes may also be concurrent.Running of the processes in parallel may decouple the speed at which theindividual processes need to be run. In addition, the operationprinciple may be changed from interrupt-drive as described above to acontinuous operation. An example of such an embodiment is shown in FIG.7. The physical resources in the right column are the same as thosedescribed for FIG. 5. In the present example, the concurrent processesshown in the middle are three parallel processes and their memorytransactions. It shall be noted that the sensing, evaluation andthrottling processes have been sequential processes in the example ofFIG. 5. Here in FIG. 7, the sensing process continuously loops throughthe various sensors on the dies and writes the returned temperaturevalues in memory. Similarly, the evaluation process continuously loopsthrough the temperature values stored in memory and decides on thisbasis whether throttling or other cooling activity is necessary. Asbefore, the throttling orders or decisions may be stored in memory.Finally, the throttling process continuously loops through thethrottling decisions as read from the memory and controls resourcethrottling in response to the retrieved orders. All loops as describedare indicated by the small arrows leading back to the process itself.

The left part of FIG. 7 again contains the status information of thissystem control. These memory spaces 64 may be shared between processes,but just one process may write to each memory location, such that thereare no race conditions or conflicts.

An exemplary algorithm for an embodiment such as that of FIG. 7 is givenin Appendix B FIG. 14. A flow diagram for this example is shown in FIG.8. If the measured temperature of a sensor is higher than apredetermined threshold value and this resource is hotter than thesurrounding resources, this particular resource is throttled. If thesurrounding resources show higher temperature readings, a request ismade to throttle them. If the threshold value is not exceeded by asensor reading, but there is a request from a surrounding resource tothrottle this resource, and the resource is hotter than the surroundingresources, the resource may still be throttled. In other cases, there isno need to throttle this resource.

More particularly, memory may again be allocated for temperature sensorreadings and thresholds, similar to the example of FIG. 5 and Appendix AFIG. 13. Additional memory or variables may be required for storingthrottling requests directed to other sensors (line 62 in appendix BFIG. 14) than the one currently evaluated.

Different from the first example algorithm, the loop is not triggered byan interrupt but is continuously looping, thus integrating thetemperature threshold monitoring into the loop by a check. Temperaturevalues are read from the sensors continuously (step 200) and may bestored, buffered or directly transferred for use in the control loop. Ineach cycle, each controlled sensor is evaluated. If a temperature abovea preset threshold is detected for a specific sensor in step 204 whichhas been selected for evaluation in step 202, an inner loop (lines 80 to87) is started which compares the temperature of the currently processedsensor to that of neighboring sensors (step 206). In the example, thesensors below and above are used again for comparing by applyingpredefined functions like above_sensor and below_sensor, but other ormore sensors in the system may be used in further embodiments. Thesensors which are chosen for temperature evaluation may be predefined ormight also be updated when required.

Again, a binary throttle order is issued if the processed sensor orrather the corresponding resource has a higher temperature compared withpredefined neighboring sensors (step 212). If this processed sensor isnot the one having the highest temperature, the algorithm loop continuesby setting a throttle_request to a value of 1 in step 214, which mayindicate that at least one of the resources surrounding the sensor sneeds to be throttled. The resources which are covered by such a requestmay be defined as required, e.g. the request may only extend to theresources above or below the current sensor, or to all sensors locatedon the same die. Possible uses of the throttle request variable will bediscussed below.

For the case that the processed sensor does not show a temperature aboveits threshold in step 204, the outer loop continues as follows (line88). It may be checked whether there are throttle requests for thecurrent sensor which have been issued by neighboring sensors in step208. If a neighboring sensor has issued a throttle request, i.e. thisneighboring sensor has determined that one of its own neighboringresources (including the resource in question) should be throttled, andthe temperature measured by that sensor is lower than the temperature ofthe processed sensor as determined in step 210, the currently processedsensor is again throttled (step 212). A throttle request by aneighboring sensor which does not involve a relatively highertemperature at a sensor compared to that neighboring sensor will notinduce a throttling order and end the procedure for this sensor (step216). Similarly as for other embodiments, the throttle request mayalternatively indicate the confidence that the surrounding resourcesneed to be throttled as a numerical value instead of a binary requestflag.

Various combinations and enhancements of the above exemplary embodimentsare possible. Also, they may be modified in different ways. For example,further actions may be taken in response to certain temperaturereadings. Warnings may be issued to a user, or memory allocations may bemoved from overheated memory resources to another resource in order toprotect data and prevent a break down of functionality. The respectiveactions may be triggered by additional orders and/or requests includedin an algorithm. There may also be different thresholds for coolingmeasures and further actions. In case of an interrupt triggeredevaluation process, it may be implemented that not only the triggeringsensor is processed but also other sensors. Furthermore, several sensingcycles instead of a single one may be induced by an interrupt to producereliable temperature readings, and/or to obtain a number of temperaturevalues as a function of time which may be used as additional informationfor evaluation.

In order to read separate sensors in a die system as desired, e.g. foran interrupt triggered or continuous temperature sensing, a suitablehardware implementation is required. It is assumed that in the describedexample at least several sensors 22 located on one or more dies 2, 4, 6are controlled by a single control unit or control entity. This entitymay analyze, control and evaluate all temperature related issues in adie system, or only a part of it. The control system may be implementedas described above on a logical level. For reading the sensor values,the control may cycle through all the sensors activating only one at atime. The sensor value may then be sensed or read back using a sharedsignaling resource (cf. FIG. 4).

The evaluation and throttling sequences as described by way of exampleabove require selecting a specific sensor from the three-dimensionalsensor arrangement in a die stack. There are several possibilities forachieving this effect. One option is to control the galvanic connectionto the sensor by multiplexing. An implementation may include a singlemultiplexer on each die for all sensors arranged thereon, or severalsmaller multiplexers on each die. In other embodiments, other switchingelements may be used. For example, a specific sensor may be selected bydigital logic such as using control registers which are writeable fromoutside the die. The registers may act as switch control inputs, whilethe corresponding switches control a connection to a voltage or currentsource associated with the temperature sensors.

A first option for programming the sensor selection is to useprogrammable control registers that control which of the sensors isactive. The information in the registers may be implemented in aone-hot, binary, or Gray encoding. One-hot refers to a group of bitswhere the only allowable combinations are those with a single bit set onhigh or 1, and all other bits on low or zero. Gray encoding usuallyrefers to a modified binary encoding where two successive values differin only one bit. All these and further register implementations whichmay be used in relation to inventive embodiments are known in the artand will not be explained here in more detail. Writing and possiblyreading of such registers in a control system may be achieved throughthe normal data interface of a die.

Another option would be an interface containing a single data signalline and a single clock. These two signals may be referred to as acombined control signal in the following. The exemplary control lineshown in FIG. 4 may also be formed by these signals. The data signalline may consist of D flip-flops such that each time a new data value isclocked in from the beginning of the data path, each of the flip-flopsgets the value of the previous flip-flop as its new value. The values ofthe flip-flop outputs may be used as sensor selection controls.

FIG. 9 illustrates a part of an exemplary inventive embodiment forselecting a specific sensor to be sensed. While only one die is shownschematically, it will be understood that the system may include severaldies controlled by the same control entity. A daisy-chained 1-bit databus and a clock signal are used to toggle configuration data in thechain, indicated by arrows. Multiplexers are used for controlling thegalvanic connections of several thermal sensors on the die. Themultiplexers are also located on the die itself. In the example shown,thermal diodes are used as sensors, and the multiplexers are 2-to-1transmission gate multiplexers, but other switching methods are equallyconceivable. The multiplexers allow for a galvanic connection of ananalog sensing module such as an analog-to-digital converter ADC to aselected sensor. This ADC is not located on the die, but is external tothe die and may be combined with the further elements in a controlentity. Further elements are a configurable compensation block connectedto the ADC that is used to compensate for offsets and/or non-linearbehaviour of individual sensors. The compensation block is furtherconnected to a comparator which facilitates comparison of measurementvalues which have been received through the ADC and the compensationblock. All of these external sensing and evaluation elements may becombined outside the die and may be controlled by a control block. Thecontrol block may be combined with the compensation block, thecomparator and the ADC in one entity, which may optionally also havefurther functionality. In some embodiments, comparator, control andcompensation may be implemented via software code for added flexibility.

The first multiplexer shown on the bottom of the die in FIG. 9 mayimplement a “chip enable” functionality. An input signal from theexternal control block is provided to this multiplexer. As describedbefore, this signal may include a single data line and a clock line.

If this signal from control to first multiplexer is not enabled, none ofthe sensors on this die will be active regardless of their control bits.The control signal (depicted as arrows) is then conveyed through thechain of multiplexers, giving signals which decide on the status of eachmultiplexer. Parallel to the control line, the electrical connectionsare shown between the multiplexers and to the thermal sensors as lineswithout arrows. In the present example, eight sensors are located on thedie, and seven multiplexers are required for allowing to select a singleone of these sensors. When more or less sensors are present on a die,the number of multiplexers used will also be different. From the lastmultiplexer on the die, the control signal continues to the sensorcircuits on the next die within the system that is controlled by thesame control entity. These further dies and their connections to thecomparator, ADC and compensator are not shown in the figure. It will beunderstood that the control entity including the external sensing,evaluation and control elements may control any number of sensors onseveral dies.

FIG. 10 illustrates an example of controlling the multiplexers in theembodiment of FIG. 9. The hardware setup shown is the same as describedabove for FIG. 9. A single sensor, in this example the marked sensor onthe upper right, shall be accessed for a temperature reading. Therequired electrical connection may be provided by the line connectedbetween one sensor terminal and the ADC on one hand, and the electricalline routed through the chain of multiplexers and connected to thesecond sensor terminal on the other hand. These electrical connectionsare indicated as bold lines in FIG. 10. Again, the control lines aredepicted with arrows. Additionally, the input given by the controlsignal is shown next to each multiplexer input. In this example, aninput control value of ‘0’ always selects the left signal path, andcorrespondingly a value of ‘1’ will select the path on the right. Avalue indicated as ‘x’ means a “don't care” value, which is, the valuemay be either 0 or 1 without changing the result.

Reading the selected sensor is accomplished as follows. A program is fedin via the control block. For each sensor to be selected, a specificprogram may be stored or generated in the control unit for controllingthe multiplexer structures. The program is fed in with one bit perrising edge of the clock signal, which is not shown separately here butis included in the “control signal” of the figures. In the present case,the program may be “xx10xxx01”. It will be understood that the sequenceof binary signals in such a program will depend on the specific set-upof the control lines, i.e. the way several multiplexers are connected toeach other. When higher-order multiplexers are used instead of2-1-multiplexers, a different control signal will be required to allow aselection of more than two outputs. In the present example, the firstsignal value is an enabled bit or ‘1’ fed to the “chip enable”multiplexer. This signal enables the selection of a sensor on the die. A‘0’ at this point, i.e. on the last position of the example controlprogram, would lead to the open line and thus prevent a closed electricconnection with any of the sensors. The second signal is a 0, meaningthat the upper set of sensors is chosen. It is seen from the figure thatafter this second multiplexer, the signals for the multiplexersassociated with the four lower sensors are not relevant for the furtherresult. This is why those signals, i.e. the next three signals in theexample control sequence, are indicated as a value of ‘x’. After runningthrough the three multiplexers of the lower sensor set, the multiplexeris reached which is directly connected to the selected sensor.Therefore, the signal of ‘0’ at this place together with the ‘1’ signalfor the next multiplexer completes the electrical connection to thedesired sensor. Again, after these multiplexers, the signal for the lastmultiplexer on the die connected to the remaining pair of sensors is notrelevant, since the second-to-last multiplexer has prevented aconnection of these sensors. Since only one die is considered in thisexample, the signal for a subsequent die is again not important andindicated with ‘x’. When further dies are connected into the controlsequence, the signal sequence may continue with suitable signals inorder to select a sensor on another die or to set the chip select signalfor a further die to 0, which would prevent selection of more than onesensor.

Inside the analog-digital converter ADC, a current source is activatedafter programming of the control sequence. The ADC can then sense thevoltage over the selected sensor, converting that voltage into acorresponding digital value. Subsequently the digital value is fed tothe compensation block, which has individual information on thecharacteristics of all sensors and calibration information. Using thisinformation, the ADC value is corrected to better correspond to theactual temperature on the die. Finally, the comparator compares thiscompensated value to the set threshold values and either produces aninterrupt or a continuous status signal. On a third output, thecompensated sensor value may be given, for instance for archival orlong-term follow-up purposes. When an interrupt is generated in responseto a sensor reading, the controlling and throttling of resources asdescribed above may be triggered. It shall be noted that the controlentity for controlling the resource activity may be included in theinterrupt control described in connection with FIGS. 9 to 12 forselecting sensor to be read, but may also in some embodiments beenclosed in a separate hardware and/or software based control whichperforms the evaluation and throttling functions as described in theabove examples.

FIG. 11 is another exemplary embodiment for selecting a single sensorusing an external control entity. The electrical connections, controllines and multiplexer arrangements are the same as in FIGS. 9 and 10.Here, a separate current source is included on the die for preventingparasitic effects from long signal path lengths. The analog-digitalconverter may be chosen such that potential voltage fluctuations due tothis do not have any influence. In other embodiments, an additionalcontrol element may be included for the current source, such that thecurrent source on a die is only activated when actual sensing of sensorstakes place. Such a control is not shown in FIG. 11, but may beimplemented e.g. by a simple switch or other control elements.

In FIG. 12, three additional embodiments of the invention are shown.Again, the general structure of all three exemplary setups is similar tothat of FIGS. 9 to 11. FIG. 12a shows an example where the analogdigital converter ADC is not longer outside the die, but insteadincluded on the die. This means that each die has its own ADC.Otherwise, the control and sensing is performed similar to theembodiment of FIGS. 9 and 10. The current source is again included inthe ADC. An additional control line to the ADC, i.e. to the die is usedfor indicating when to sense a specific sensor. In the next example ofFIG. 12b, not only the ADC but also the compensation block is moved ontothe die. In this embodiment, the control for compensation and ADC isalternatively done via status and control registers located on the dieand connected to the standard command line of the die. It will beunderstood that this type of control for on-die elements may also beused as an alternative in the embodiment of FIG. 12a, or that thecontrol in FIG. 12 b might still be performed completely by the controlblock as before. In the last example in FIG. 12c, the comparator is alsomoved to the die and connected to status and control registers. Only thecontrol block for all sensors remains outside the die.

The selection of a single sensor in an embodiment as in those examplesmay then be used for implementing sensing and evaluation loops asdescribed above. However, it shall be noted that the above hardwareexamples are not necessarily restricted to stacked die implementationsor to combinations with algorithms as those described above, but may beused in any implementation where a single specific sensor shall beselected and read.

Although exemplary embodiments of the present invention have beendescribed, these should not be construed to limit the scope of theappended claims. Those skilled in the art will understand that variousmodifications may be made to the described embodiments and that numerousother configurations or combinations of any of the embodiments arecapable of achieving this same result. Moreover, to those skilled in thevarious arts, the invention itself will suggest solutions to other tasksand adaptations for other applications. It is the applicant's intentionto cover by claims all such uses of the invention and those changes andmodifications which could be made to the embodiments of the inventionherein chosen for the purpose of disclosure without departing from thespirit and scope of the invention.

The invention claimed is:
 1. A method comprising obtaining temperaturevalues from at least two thermal sensors arranged on resources within athree-dimensional die structure; determining at least a partialthree-dimensional temperature distribution for said die structure; andcontrolling activity of said resources of said dies in response to saidthree-dimensional temperature distribution.
 2. The method of claim 1,wherein said determining includes comparing temperature values of saidat least two thermal sensors with each other; locating at least one heatsource based on said comparing; identifying at least one resourceassociated with said at least one heat source; and wherein saidcontrolling of activity includes throttling activity at least in said atleast one identified resource.
 3. The method of claim 2, wherein saidactivity is throttled if said at least one temperature value associatedwith said at least one identified resources is above a predefinedthreshold.
 4. The method of claim 2, wherein said identifying includesidentifying a resource associated with the highest of said comparedtemperature values.
 5. The method of claim 1, further comprisingreceiving a signal indicating a temperature value above a secondpredefined threshold.
 6. The method of claim 1, further comprisingcontinuously sensing said temperature values.
 7. The method of claim 5,further comprising sensing said temperature values in response to saidreceived signal.
 8. The method of claim 6, further comprising selectinga specific sensor to be sensed.
 9. The method of claim 8, furthercomprising providing a control sequence signal for switching elementsconnected to said sensor.
 10. The method of claim 9, wherein saidswitching elements comprise multiplexers.
 11. The method of claim 1,further comprising selecting a specific sensor for evaluation; whereinsaid obtained temperature values include a selected temperature valuesensed by said selected sensor; and wherein said comparing comprisescomparing said selected temperature value to at least a further one ofsaid obtained temperature values; and issuing a throttle order for aresource associated with said selected sensor if said selectedtemperature value is determined to be the highest value in saidcomparing.
 12. The method of claim 11, further comprising issuing athrottle request for a defined further resource if a temperature valueassociated with said further resource is higher than said selectedtemperature value.
 13. The method of claim 1, further comprisingchecking whether a throttle request exists for a selected resource. 14.The method of claim 13, further comprising comparing a selectedtemperature value associated with said selected resource to a secondtemperature value associated with the resource which has issued saidthrottle request; and issuing a throttle order for said selectedresource if said selected temperature value is higher than said secondtemperature value.
 15. The method of claim 2, wherein said throttling istriggered by a binary throttle order associated with a specificresource.
 16. The method of claim 1, further comprising determining ameasure of confidence that at least a selected resource needs to bethrottled.
 17. The method of claim 16, wherein said measure ofconfidence is included in a throttle order.
 18. The method of claim 12,wherein said throttle request is a binary value associated with arequesting resource.
 19. The method of claim 2, wherein at least one ofsaid comparing or said throttling is based on information on relativesensor locations within said die structure.
 20. The method of claim 1,wherein said at least two temperature values are obtained from adjacentsensors within said die structure.
 21. A non-transitory computer programproduct including computer program code which, when executed, causes adevice to execute a method according to claim
 1. 22. A method comprisingobtaining temperature values from a number of selected thermal sensorslocated on dies within a three-dimensional die structure; determining atleast a partial three-dimensional temperature distribution for said diestructure; controlling activity of resources of said dies in response tosaid three-dimensional temperature distribution.
 23. A device comprisingat least two semiconductor dies packaged together in a three-dimensionaldie structure; at least one thermal sensor located on each of said dies;a control unit connected to and controlling said thermal sensors;wherein said control unit is adapted to obtain temperature values sensedby said thermal sensors; determine at least a partial three-dimensionaltemperature distribution for said die structure; and issue throttleorders for resources on said dies in dependence of said temperaturedistribution.
 24. The device of claim 23, wherein said control unit isfurther adapted to sense a selected thermal sensor.
 25. The device ofclaim 23, wherein said control unit is adapted to continuously evaluateat least a part of said thermal sensors, said evaluation including saiddetermining of a temperature distribution and said issuing of throttleorders.
 26. The device of claim 23, further comprising a memory elementconfigured for storing said throttle orders.
 27. The device of claim 23,further comprising a memory element configured for storing saidtemperature values or said temperature distribution.
 28. The device ofclaim 23, further comprising switching elements coupled between saidcontrol unit and said thermal sensors, said switching elements beingconfigured for selecting a specific thermal sensor.
 29. The device ofclaim 28, wherein said switching elements comprise multiplexers.
 30. Thedevice of claim 28, wherein said switching elements are arranged suchthat only a single sensor at a time is connected to said control unit.31. The device of claim 23, said device further including a sensingunit.
 32. The device of claim 31, wherein said sensing unit comprises ananalog-to-digital converter.
 33. The device of claim 23, wherein saidthermal sensor comprises a thermal diode.
 34. The device of claim 31,wherein said sensing unit is coupled to a compensation unit configuredfor modifying values sensed by said sensing unit.
 35. The device ofclaim 31 34, wherein said sensing unit or said compensation unit are iscoupled to a comparator configured for comparing values sensed by saidsensing unit.
 36. The device of claim 31 35, wherein said control unitincludes at least one of said sensing unit, said compensation unit andor said comparator.
 37. The device of claim 23, wherein said controlunit is implemented via configured to use software code.
 38. A methodcomprising: obtaining temperature values from at least two thermalsensors arranged in proximity to resources within a three-dimensionaldie structure; performing one or more comparisons of the temperaturevalues to each other; and controlling activity of one or more of theresources in response to the one or more comparisons.
 39. The method ofclaim 38, wherein said performing includes: locating at least one heatsource based on said one or more comparisons; identifying at least oneresource associated with said at least one heat source; and wherein saidcontrolling activity includes throttling activity at least in said atleast one identified resource.
 40. The method of claim 39, wherein saidactivity is throttled if said at least one temperature value associatedwith said at least one identified resources is above a predefinedthreshold.
 41. The method of claim 39, wherein said identifying includesidentifying a resource associated with the highest of the comparedtemperature values.
 42. The method of claim 39, wherein at least one ofsaid comparing or said throttling is based on information on relativesensor locations within the die structure.
 43. The method of claim 38,further comprising receiving a signal indicating a temperature valueabove a second predefined threshold.
 44. The method of claim 43, furthercomprising sensing said temperature values in response to said receivedsignal.
 45. The method of claim 38, further comprising continuouslysensing said temperature values.
 46. The method of claim 44, furthercomprising: selecting a specific sensor to be sensed and providing acontrol sequence signal for switching elements connected to saidspecific sensor.
 47. The method of claim 38, further comprisingselecting a specific sensor for evaluation; wherein the obtainedtemperature values include a specific sensor temperature value sensed bythe specific sensor; and wherein said performing comprises comparingsaid specific sensor temperature value to at least a further one of theobtained temperature values; and issuing a throttle order for a resourceassociated with the specific sensor if the specific sensor temperaturevalue is determined to be the highest value in said comparing.
 48. Themethod of claim 47, further comprising issuing a throttle request for adefined further resource if a temperature value associated with thefurther resource is higher than the specific sensor temperature value.49. The method of claim 38, further comprising: checking whether athrottle request exists for a selected resource; comparing a selectedtemperature value associated with the selected resource to a secondtemperature value associated with the resource which has issued saidthrottle request; and issuing a throttle order for the selected resourceif the selected temperature value is higher than the second temperaturevalue.
 50. The method of claim 38, further comprising determining ameasure of confidence that at least a selected resource needs to bethrottled.
 51. The method of claim 50, wherein the measure of confidenceis include in a throttle order.
 52. A device comprising: at least twosemiconductor dies packaged together in a three-dimensional diestructure; at least one thermal sensor located on each of said dies; acontrol unit connected to and configured to control the thermal sensors;wherein the control unit is further configured to: obtain temperaturevalues from at least two thermal sensors arranged in proximity toresources within the three-dimensional die structure; perform one ormore comparisons of the temperature values to each other; and controlactivity of one or more of the resources in response to the one or morecomparisons.
 53. The device of claim 52, wherein the control unit isfurther configured to sense a selected thermal sensor.
 54. The device ofclaim 52, wherein the control unit is configured to continuouslyevaluate at least a subset of the thermal sensors, said evaluationincluding the performing of comparisons and the controlling activity ofone or more of the resources.
 55. The device of claim 52, furthercomprising one or more memory elements configured to store at least oneof throttle orders issued in conjunction with the controlling activityof one or more of the resources or the temperature values.
 56. Thedevice of claim 52, further comprising switching elements coupledbetween the control unit and the thermal sensors, the switching elementsbeing configured to select a specific thermal sensor.
 57. The device ofclaim 56, wherein one or more of the switching elements comprises amultiplexer.
 58. The device of claim 56, wherein the switching elementsare arranged such that only a single sensor at a time is connected tothe control unit.
 59. The device of claim 52, further including asensing unit.
 60. The device of claim 59, wherein the sensing unitcomprises an analog-to-digital converter.
 61. The device of claim 59,wherein the sensing unit is coupled to a compensation unit configured tomodify values sensed by the sensing unit.
 62. The device of claim 61,wherein at least one of the sensing unit or the compensation unit iscoupled to a comparator configured to compare values sensed by thesensing unit.
 63. The device of claim 62, wherein the control unitincludes at least one of the sensing unit, the compensation unit, or thecomparator.
 64. The device of claim 52, wherein at least one saidthermal sensor comprises a thermal diode.
 65. A non-transitory computerprogram product including computer program code that, if executed by adevice, causes the device to implement operations comprising: obtainingtemperature values from at least two thermal sensors arranged inproximity to resources within a three-dimensional die structure;performing one or more comparisons of the temperature values to eachother; and controlling activity of one or more of the resources inresponse to the one or more comparisons.
 66. The computer programproduct of claim 65, wherein said performing includes: locating at leastone heat source based on said one or more comparisons; identifying atleast one resource associated with said at least one heat source; andwherein said controlling activity includes throttling activity at leastin said at least one identified resource.
 67. The computer programproduct of claim 66, wherein said activity is throttled if said at leastone temperature value associated with said at least one identifiedresources is above a predefined threshold.
 68. The computer programproduct of claim 66, wherein said identifying includes identifying aresource associated with the highest of the compared temperature values.69. The computer program product of claim 66, wherein at least one ofsaid comparing or said throttling is based on information on relativesensor locations within the die structure.
 70. The computer programproduct of claim 65, the operations further comprising receiving asignal indicating a temperature value above a second predefinedthreshold.
 71. The computer program product of claim 70, the operationsfurther comprising sensing said temperature values in response to saidreceived signal.
 72. The computer program product of claim 65, theoperations further comprising continuously sensing said temperaturevalues.
 73. The computer program product of claim 72, the operationsfurther comprising: selecting a specific sensor to be sensed; andproviding a control sequence signal for switching elements connected tosaid sensor.
 74. The computer program product of claim 65, theoperations further comprising selecting a specific sensor forevaluation; wherein the obtained temperature values include a specificsensor temperature value sensed by the specific sensor; and wherein saidperforming comprises comparing said specific sensor temperature value toat least a further one of the obtained temperature values; and issuing athrottle order for a resource associated with the specific sensor if thespecific sensor temperature value is determined to be the highest valuein said comparing.
 75. The computer program product of claim 74, theoperations further comprising issuing a throttle request for a definedfurther resource if a temperature value associated with the furtherresource is higher than the specific sensor temperature value.
 76. Thecomputer program product of claim 65, the operations further comprising:checking whether a throttle request exists for a selected resource;comparing a selected temperature value associated with the selectedresource to a second temperature value associated with the resourcewhich has issued said throttle request; and issuing a throttle order forthe selected resource if the selected temperature value is higher thanthe second temperature value.
 77. The computer program product of claim65, the operations further comprising determining a measure ofconfidence that at least a selected resource needs to be throttled. 78.The computer program product of claim 77, wherein the measure ofconfidence is included in a throttle order.